home *** CD-ROM | disk | FTP | other *** search
- /*
- * vaproto.h
- *
- * project: venus
- *
- * author: stefan eissing
- *
- * description: Definition der Nachrichten des Venus <-> Accessory
- * Protokolls
- *
- * last change: 16.4.1991
- */
-
- #ifndef __vaproto__
- #define __vaproto__
-
- #define AP_TERM 50
-
- /* Message-Nummern für das xAcc-Protokoll von Konrad Hinsen
- * Venus gibt bei ACC_ID "VENUS.APP" und Gemini gibt "GEMINI.APP"
- * zurück. Gemini unterstützt xAcc der Stufe 0.
- */
- #define ACC_ID 0x400
- #define ACC_OPEN 0x401
- #define ACC_CLOSE 0x402
- #define ACC_ACC 0x403
-
- /* Message-Nummern für die Kommunikation zwischen Venus und
- * verschiedenen Accesories.
- * Sollten in Nachrichten Pfade oder Dateinamen vorkommen, so
- * muß immer der absolute Pfad angegeben werden (also mit Laufwerk)
- * und alle Buchstaben müssen Großbuchstaben sein. Pfade enden
- * IMMER mit einem Backslash!
- *
- * Nachrichten von Venus beginnen mit VA (Venus -> Accessory).
- * Nachrichten an Venus beginnen mit AV (Accessory -> Venus).
- *
- * Mit AV_PROTOKOLL kann jedes Acc nachfragen, welche Nachrichten
- * verstanden werden (Dies ist ja bei VENUS und GEMINI
- * unterschiedlich! Es wäre schön, wenn auch andere Programme auf
- * dieses Protokoll reagieren würden. Zumindest AV_SENDKEY ist
- * sicher leicht zu implementieren und ist die einzige Methode, wie
- * über Nachrichten Tastaturdrücke simuliert werden können.
- */
-
- /* AV_PROTOKOLL: Mit dieser Nachrichtennummer sollte man bei
- * anderen Applikationen und auch VENUS/GEMINI nachfragen, ob
- * und welche Nachrichten sie versteht.
- */
- #define AV_PROTOKOLL 0x4700
- /*
- * Word 6+7: Pointer auf den Accessorynamen, wie er bei
- * appl_find benutzt werden muß; also 8 Zeichen lang
- * nullterminiert (char name[9]).
- * Die Bits in den Worten 3, 4 und 5 haben folgende Bedeutung:
- * Word 3:
- * Bit 0: (VA_SETSTATUS)
- * Bit 1: (VA_START)
- * Alle anderen Bits sind für Erweiterungen reserviert und sollten
- * daher mit 0 vorbesetzt werden. Das gilt natürlich auch für die
- * Bits in den Worten 4 und 5.
- */
-
- /* VA_PROTOSTATUS: Dem Sender von AV_PROTOKOLL wird mitgeteilt, daß
- * der Empfänger etwas von diesem Protokoll weiß. Die Worte 3-7 des
- * Nachrichtenpuffers enthalten die Information, welche Nachrichten
- * verstanden werden. Gesetzte Bits stehen dafür, daß eine Nachricht
- * (Nachrichtengruppe) verstanden werden.
- */
- #define VA_PROTOSTATUS 0x4701
- /*
- * Word 6+7: Pointer auf den Programmnamen, wie er bei
- * appl_find benutzt werden muß; also 8 Zeichen lang
- * nullterminiert (char name[9]).
- * Die Bits in den Worten 3, 4 und 5 haben folgende Bedeutung:
- * Word 3:
- * Bit 0 (AV_SENDKEY)
- * Bit 1 (AV_ASKFILEFONT)
- * Bit 2 (AV_ASKCONFONT, AV_OPENCONSOLE)
- * Bit 3 (AV_ASKOBJECT)
- * Bit 4 (AV_OPENWIND)
- * Bit 5 (AV_STARTPROG)
- * Bit 6 (AV_ACCWINDOPEN, AV_ACCWINDCLOSED)
- * Bit 7 (AV_STATUS, AV_GETSTATUS)
- * Bit 8 (AV_COPY_DRAGGED)
- * Alle anderen Bits sind für Erweiterungen reserviert und sollten
- * daher mit 0 vorbesetzt werden. Das gilt natürlich auch für die
- * Bits in den Worten 4 und 5.
- *
- * AV_SENDKEY kann sicher jeder leicht in seine Programme einbauen.
- * Bei AV_OPENWIND könnte ein Hauptprogramm auch seine "normale"
- * Routine zum Öffnen eines Dokumentes anwerfen und dabei den
- * übergebenen Pfad benutzen. Dies ist zusammen mit der Benutzung
- * von TreeView sicher eine einfache Art, Dateien aus anderen Ordnern
- * oder Laufwerken zu laden.
- */
-
- /* AV_GETSTATUS: Ein Accessory erfragt bei Venus den aktuellen
- * Status, den es Venus mit AV_STATUS mal gegeben hat.
- */
- #define AV_GETSTATUS 0x4703
-
- /* AV_STATUS: Ein Accessory kann Venus seinen Status mitteilen,
- * der dann von Venus im INF-File gespeichert wird und mit
- * AV_GETSTATUS wieder abgerufen werden kann.
- * Zuvor MUSS es sich aber mit AV_PROTOKOLL anmelden!
- * Word 3+4: Pointer auf einen String, der keine Steuerzeichen
- * enthalten darf und nicht länger als 256 Zeichen
- * sein darf. Dieser Pointer darf allerdings NULL sein.
- */
- #define AV_STATUS 0x4704
-
- /* VA_SETSTATUS: Venus teilt dem Accessory den abgespeicherten
- * Status bei Nachfrage durch AV_GETSTATUS mit. Dieser kann dann
- * von einem Accessory gesetzt werden.
- * Word 3+4: Pointer auf einen String, der keine Steuerzeichen
- * enthält.
- * Dieser Pointer kann allerdings NULL sein, dann war
- * kein Status gespeichert.
- */
- #define VA_SETSTATUS 0x4705
-
- /* AV_SENDKEY: Ein Acc sendet VENUS/GEMINI einen Tastaturevent, den
- * es selber vielleicht nicht versteht.
- * Word 3 = Tastaturstatus ev_mmokstate
- * Word 4 = Scancode der gedrückten Taste ev_mkreturn
- */
- #define AV_SENDKEY 0x4710
-
- /* VA_START: Accessory wird aktiviert. Word 3 + 4 enthalten einen
- * Pointer auf eine Kommandozeile, der auch NULL sein kann.
- * In der Kommandozeile stehen Pfade oder Dateinamen.
- */
- #define VA_START 0x4711
-
- /* AV_ASKFILEFONT: Frage nach dem eingestellten Zeichensatz
- * für Dateinamen.
- */
- #define AV_ASKFILEFONT 0x4712
-
- /* VA_FILEFONT: Gibt den derzeit eingestellten Zeichensatz.
- * Word 3 = Dateifontnummer (font id)
- * Word 4 = Dateifontgröße (in points)
- */
- #define VA_FILEFONT 0x4713
-
- /* (Nur Gemini) AV_ASKCONFONT: Frage nach dem eingestellten
- * Zeichensatz für das Console-Fenster.
- */
- #define AV_ASKCONFONT 0x4714
-
- /* VA_CONFONT: Gibt den derzeit eingestellten Zeichensatz.
- * Word 3 = Consolefontnummer (font id)
- * Word 4 = Consolefontgröße (in points)
- */
- #define VA_CONFONT 0x4715
-
- /* AV_ASKOBJECT: Fragt nach dem derzeit selektiertem Objekt.
- * Es wird der Name des derzeit selektierten Objektes zurückgegeben.
- * Ist kein Objekt selektiert, so ist der String leer.
- * Sind mehrere Objekte selektiert, so sind ihre Namen durch Leer-
- * zeichen getrennt.
- */
- #define AV_ASKOBJECT 0x4716
-
- /* VA_OBJECT: Gibt Namen der derzeit selektierten Objekte.
- * Aufbau wie bei VA_START
- */
- #define VA_OBJECT 0x4717
-
- /* (Nur Gemini)AV_OPENCONSOLE: Venus soll das Console-Fenster öffnen.
- * Ist es schon offen, so wird es nach vorne gebracht. Diese Aktion
- * ist vor allen Dingen sinnvoll, wenn ein Accessory ein TOS-Programm
- * mittels der system()-Funktion starten will (Warnung: Auf keinen
- * Fall darf ein GEM-Programm von einem Accessory via system()
- * gestartet werden! (siehe auch AV_STARTPROG)
- * Auch sollte diese Nachricht nur auf ausdrücklichen Wunsch des
- * Benutzers gebraucht werden, da es ihn sonst nur verwirren kann.
- *
- * ACHTUNG: Diese Nachricht steht nur in Gemini.app zur Verfügung.
- */
- #define AV_OPENCONSOLE 0x4718
-
- /* VA_CONSOLEOPEN: Gibt zurück, ob das Console-Fenster nach vorne
- * gebracht worden ist. Word 3 == 0 (nein) != 0 (ja)
- */
- #define VA_CONSOLEOPEN 0x4719
-
- /* AV_OPENWIND: Venus soll ein Datei-Fenster öffnen.
- * Dies sollte auch nur geschehen, wenn die Ursache für den
- * Benutzer ersichtlich ist.
- * Word 3+4 (Pointer) Pfad für das Fenster (s.o.).
- * Word 5+6 (Pointer) Wildcard für darzustellende Dateien.
- */
- #define AV_OPENWIND 0x4720
-
- /* VA_WINDOPEN: Gibt an, ob das Fenster geöffnet werden konnte.
- * siehe VA_CONSOLEOPEN
- */
- #define VA_WINDOPEN 0x4721
-
- /* AV_STARTPROG: Venus soll ein Programm starten. Hierbei
- * werden die angemeldeten Applikationen der Venus mit
- * berücksichtigt. Man kann also auch eine Datei angeben, für
- * die Venus dann ein Programm sucht.
- * Word 3+4 (Pointer) Programmname mit kompletten Pfad
- * Word 5+6 (Pointer) Kommandozeile (kann NULL sein)
- */
- #define AV_STARTPROG 0x4722
-
- /* VA_PROGSTART: Gibt an, ob Venus das Programm startet.
- * Word 3 == 0: nicht gestartet, != 0 gestartet
- * Im Allgemeinen wird das Acc. im Fehlerfall sofort eine
- * Nachricht bekommen. Wenn das Programm aber gestartet wird, erhält
- * das Acc. diese Nachricht erst nach dem Start des Programms, da
- * die Routine, die den Pexec macht nicht mehr wissen kann, das ein
- * Acc. noch schnell eine Nachricht bekommen muß. Bei einem GEM-
- * Programm, kann man der Erfolg auch an dem AC_CLOSE erkennen.
- * Auch ist die Fehlererkennung nicht optimal. Der Rückgabewert weist
- * auch nicht aus, das das Programm fehlerfrei gelaufen ist.
- */
- #define VA_PROGSTART 0x4723
-
- /* AV_ACCWINDOPEN: Mit dieser Nachricht kann ein Acc Venus mitteilen, daß
- * es ein Fenster geöffnet hat.
- * Word 3 AES-Handle des geöffneten Fensters
- */
- #define AV_ACCWINDOPEN 0x4724
-
- /* VA_DRAGACCWIND: Venus teilt dem Acc mit, daß Objekte auf eines seiner
- * mittels AV_ACCWINDOPEN angemeldeten Fenster gezogen worden sind.
- * Word 3 AES-Handle des Fensters
- * Word 4 X-Position der Maus
- * Word 5 Y-Position der Maus
- * Word 6+7 Pointer auf einen String, der die Namen der Objekte enthält.
- */
- #define VA_DRAGACCWIND 0x4725
-
- /* AV_ACCWINDCLOSED: Acc teilt Venus mit, daß sein Fenster geschlossen
- * wurde. Dies braucht das Acc nur in dem Fall zu tun, wenn es selbst das
- * Fenster schließt. Bekommt es eine AC_CLOSE Mitteilung vom AES, so weiß
- * Venus schon, daß alle Fenster weg sind.
- * Word 3 AES-Handle des Fensters
- */
- #define AV_ACCWINDCLOSED 0x4726
-
- /* AV_COPY_DRAGGED: Acc teilt Venus mit, das die vorher mittels
- * VA_DRAGACCWIND gedraggten Icons nach Zielpfad kopiert werden
- * sollen.
- * Word 3 Tastaturstatus wie von evnt_multi() erhalten.
- * Word 4+5 Pointer auf String mit Zielpfad
- */
- #define AV_COPY_DRAGGED 0x4728
-
- /* VA_COPY_COMPLETE: Venus teilt dem Accessorie mit, das der
- * Kopiervorgang, der mit AV_COPY gestartet wurde, beendigt ist.
- * Word 3 0, wenn nichts kopiert wurde
- ungleich 0, wenn etwas kopiert wurde
- */
- #define VA_COPY_COMPLETE 0x4729
-
- #endif
-